package com.suncaper.shop.domain;

import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;


public class Cart {
    private Map<Integer, CartItem> itemMap = new HashMap<Integer, CartItem>();

    private Double total = 0.0;

    @Override
    public String toString() {
        return "Cart{" +
                "itemMap=" + itemMap +
                ", total=" + total +
                '}';
    }

    public Map<Integer, CartItem> getItemMap() {
        return itemMap;
    }

    public void setItemMap(Map<Integer, CartItem> itemMap) {
        this.itemMap = itemMap;
    }

    public Double getTotal() {
        return total;
    }

    public void setTotal(Double total) {
        this.total = total;
    }

    public Collection<CartItem> getCartItems() {

        return itemMap.values();
    }

    /**
     * 加入购物车
     *
     * @param item
     */
    public void addToCart(CartItem item) {
        Integer pid = item.getProduct().getPid();

        if (itemMap.containsKey(pid)) {
//            有该购物项，修改数量=原来数量+新加的数量
            CartItem OItem = itemMap.get(pid);
            OItem.setCount(OItem.getCount() + item.getCount());
        } else {
            itemMap.put(pid, item);
        }

        total += item.getSubtotal();
    }

    /**
     * 移除购物项
     *
     * @param pid
     */
    public void removeFromCart(Integer pid) {
        if (itemMap.containsKey(pid)) {
            CartItem cartItem = itemMap.remove(pid);
            System.out.println(cartItem.getProduct().getPname());
            total -= cartItem.getSubtotal();
        } else {
            System.out.println("没有" + pid);
        }

    }

    /**
     * 清空购物车
     */
    public void clearCart() {
        itemMap.clear();
        ;
        total = 0.0;
    }
}
